package com.lthlearn.mapper;

import com.lthlearn.pojo.Travel;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @author: 2942733239@qq.com
 * @date: 2024/11/6 14:13
 * @description: com.lthlearn.mapper
 * @version: 1.0
 */
public interface TravelMapper {

    /**
     * 根据 id 查找旅游图片
     *
     * @param placeId
     * @return
     */
    @Select("select place_id,location_name,info from tb_travel where place_id=#{placeId}")
    Travel getById(Integer placeId);

    /**
     * 根据景点 id 集合查询多个旅游景点信息
     *
     * @param ids
     * @return
     */
    List<Travel> getByIds(@Param("ids") List<Integer> ids);

    /**
     * 根据地点名查找旅游图片
     *
     * @param locationName
     * @return
     */
    List<Travel> getByName(String locationName);

    /**
     * 根据地点名查找旅游图片
     * 根据地点名和收藏表中当前用户收藏的所有景点 id 查找收藏表中的景点信息
     * 先查询用户收藏的所有景点 id，再根据地点名和用户收藏的所有景点 id 查景点表
     *
     * @param locationName
     * @return
     */
    List<Travel> getCollectByName(Integer userId, String locationName);

    /**
     * 分页查询所有数据
     * 用 pagehelper 这里的 sql 语句最后不能有;
     * 因为要自动拼接 limit
     *
     * @return
     */
    @Select("select place_id,location_name,info from tb_travel")
    List<Travel> getAllByPage();

    /**
     * 新增景点信息
     *
     * @param travel
     * @return
     */
    int insertPlaces(Travel travel);

}
